1. Field of the Invention
This invention relates to a method for associating and storing non-speech data with speech data. More particularly, it relates to a method for associating non-speech message data with speech message data as stored within common non-volatile memory, and is particularly useful in digital answering machines or electronic voice mail systems.
2. Background of Related Art
Voice messaging in telephony has been greatly advanced in recent years by the inclusion of digital information associated with a voice message. For instance, the development of caller ID and its ability to transmit digital caller information to a called party has created a demand for the storage of this non-speech data together with the associated speech message. In general, caller ID information allows the phone number and/or name of the calling party to be displayed or otherwise announced at the called party's answering machine or electronic voice mail. Conventional caller ID devices maintain a single separate memory area containing a chronological history of the caller ID information for a predetermined number of recent calls.
Answering or voice messaging machine designs have further benefited from the decreasing costs of non-volatile memory to the point at which digital answering machines and electronic voice mail systems are affordable and common. In these type voice messaging systems, speech data is stored digitally, i.e., in non-volatile memory rather than on a magnetic tape as in older messaging machines.
More recently, conventional digital answering machines have included caller ID capability by combining conventional digital speech storage functions with a conventional caller ID block which displays and maintains a chronological history of recent calls. However, these conventional digital answering machines are basically a physical combination of known caller ID systems with known digital answering machines, with little or no integration of the memory needs of a digital answering machine (or electronic voice mail system) with those of a caller ID system.
FIG. 4 shows a conventional digital answering machine 400 combining the functionality of digital voice recording with caller ID memory and display. A telephone line 110 is input to an analog front end or telephone line interface 402 of the digital answering machine 400. The digital side of the telephone line interface 402 is connected to both a speech recording functional block 420 and a caller ID functional block 428.
The speech recording functional block 420 includes a processor 404 and non-volatile speech memory 406. The processor 404 may be a microprocessor, microcontroller, digital signal processor (DSP) or any other suitable processor or equivalent circuit. The non-volatile speech memory 406 may be any non-volatile digital storage device, e.g., RAM, EEPROM, flash memory, or even digital audio tape (DAT). The non-volatile speech memory 406 may additionally be internal or external to the processor 404.
FIG. 5 shows sectorization of the speech memory 406 into a plurality of sectors. As shown, 128 memory sectors 502-516, 550-564 are contained within the speech memory 406 of one type of conventional answering machine 400. Each sector contains 4 Kbytes of flash memory. Using today's coding techniques, each sector can store about five to ten seconds of speech data, although various rate coders exist.
FIG. 6 shows that there are 128 memory pages 602-610 within each memory sector 502-516, 550-564, and that there are 32 bytes of data in each of the 128 memory pages 602-610. Accordingly, up to 32 bytes of speech data can be stored in each page of speech memory 406 in a typical digital answering machine 400.
The speech memory 406 of the conventional digital answering machine 400 contains only speech data (other than the header information for the stored speech data). Non-speech data is contained in a separate call history memory 412 (FIG. 4) associated with the caller ID functional block 428.
FIG. 7 shows a message table 800 contained in one sector of conventional speech memory 406. The message table 800 contains various header information relating to an underlying speech message stored in the same or linked page of speech memory 406. Conventional header type information includes a time/date stamp 802 indicating the time and date when an underlying speech message was stored. TAG information 804 in the header contains user defined data. Typically, to maximize efficiency in the digital answering machine 400, the speech data is encoded. Thus, the header includes coder information 806 which relates to the type of encoding used to encode the underlying speech message data, e.g., the particular coder data rate. The new/old information 808 entry in the header of the message table 800 relates to whether or not the underlying speech message has been reviewed at least once by the user of the digital answering machine 400. The deleted/non-deleted information 810 in the header conventionally indicates whether or not the underlying speech message has been deleted by the user. The number of bytes in the last sector information 812 relates to the length of the speech message in the last sector in which the speech message is stored, avoiding replay of the unused portion of the last sector when replaying stored messages. The link list information 814 in the header indicates the addresses of all sectors used to store the speech message. Of course, additional header information 816 may be included in the message table 800 as desired.
Prior art systems store speech data in memory separate from the memory for storing non-speech data thereby requiring three management tables to associate the non-speech data with its underlying speech data, i.e., 1) speech data table, 2) non-speech data table, and 3) links between tables (1) and (2). Conversely, the present invention as will be described in more detail below provides integration of non-speech data with associated speech data into a common memory structure to require only one message table for each speech plus non-speech message.
FIG. 8 shows a sector in the speech memory 406 containing the underlying speech message 902-908. The sector shown in FIG. 8 is the first listed in the link list 814 of the message table 800 for the underlying speech message. Zero, one or more pages of speech data 902-908 may be listed in the link list 814 of a message table 800 for a single speech message.
Referring back to the digital answering machine shown in FIG. 4, the caller ID functional block 428 contains a caller ID decoder 414 which demodulates and interprets the caller ID information input over telephone line 110 associated with a call. Once decoded, the caller ID decoder 414 stores the caller ID data in the call history memory 412. The caller ID information decoded by the caller ID decoder 414 may be displayed on a graphical user interface (GUI) display 408 to indicate, e.g., the phone number, name or other information relating to the calling party. Conventionally, the GUI display 408 displays the caller ID information regarding any one of the most recent calls to the digital answering machine 400. Typically the number of calls for which the call history 412 retains caller ID information is limited only by the length of the call history memory. Moreover, non-speech information may easily be retained in the call history memory even after the associated voice message has been deleted. However, this separation of the non-speech data, e.g., the caller ID information, from the speech data may cause confusion to the user.
FIG. 9 shows a conventional call history memory 412. Typically, call history memory 412 has a fixed length, and thus is capable of storing only a fixed amount of caller ID information from only a fixed number of recent callers. Call history information must then occasionally be deleted from the call history memory 412 to allow for new caller ID information.